home *** CD-ROM | disk | FTP | other *** search
- FreeDOS DISPLAY and PRINTER v0.09 (20-Sep-2003)
- =================================
-
-
- Aitor SANTAMARIA_MERINO (aitorsm@inicia.es)
- 2002-2003
-
-
- Contributed code and first steps by
- Ilya V. Vasilyev (hscool@netclub.ru)
- 2000
-
-
- DISPLAY device driver for FreeDOS
-
-
- This program is free software; you can redis-
- tribute it and/or modify it under the terms of the
- GNU General Public License as published by the
- Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it
- will be useful, but WITHOUT ANY WARRANTY; without
- even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General
- Public License along with this program; if not,
- write to the Free Software Foundation, Inc., 59
- Temple Place - Suite 330, Boston, MA 02111-1307,
- USA.
-
- ------
-
- 1.- About DISPLAY and PRINTER
- 2.- How to use the program
- 3.- Using MODECON.EXE
- 4.- Codepages pack
- 4.- Known Issues and Limitations
- 5.- Future wishes
-
-
- 1.- About DISPLAY and PRINTER
- =============================
-
- DISPLAY.SYS and PRINTER.SYS are device drivers that supply existing drivers
- with codepage replacement capabilities.
-
- Both routines have hardware type dependant routines to do the actual job, as
- well as (mainly) two other routines, one to SELECT the wanted codepage,
- interfacing with whichever other DOS programs is due, and balancing between the
- fixed (firmware) and the configurable (software) codepages, and a second
- routine, PREPARE, to manage several buffers with information about different
- codepages. DISPLAY also hooks some interrupt vectors to interface with the rest
- of DOS. However, they share much of the code, so that the sources supplied here
- are supposed to be valid for both.
-
- Communication between the user and the device driver to change codepage is made
- through IOCTL calls, where a generic IOCTL call informs the device (e.g. CON)
- that a codepage change is starting, and that the contents of a CPI (Codepage
- Information) file is going to be sent through the IOCTL IN line. Usual DOS
- kernel device drivers for which codepage selection has a meaning, such as CON
- or PRN, do not implement the response of these calls. The mission of
- DISPLAY.SYS and PRINTER.SYS is to implement these functions without disturbing
- with the rest device driver calls.
-
- The difference between both is that DISPLAY will monitor the video adapter
- interrupt (10h) to trap mode changes and restablish the codepage when it is
- required, and that it communicates with the rest of the world through the DOS
- multiplexer interrupt (2Fh), MuX code ADh.
-
- The codepage preparation is usually made by the DOS MODE command, whereas the
- selection is directly made by the kernel-loadable NLSFUNC component, or
- improperly, by the DOS MODE command.
-
- At this stage of development, nor DISPLAY neither PRINTER are device drivers
- that communicate through device driver calls. They are loadable TSRs, and in
- the case of DISPLAY, it communicates with the rest of the world through a
- slightly enlarged muliplexer interrupt. PRINTER has no binary, being one of
- the reasons that it has no way to interface with programs outside. It is
- intended that they will work as they should in version 1.0. For a list of
- other limitations of current version, see the sections below.
-
- Ilya V. Vasilyev is the author of the first DISPLAY-style program, that
- appeared inside his CHCP05b package. Ilya's code has place today as:
- - the video interrupt manager
- - the EGA hardware type selection routines
- for which I am deeply grateful.
-
-
- 2.- Hardware supported
- ======================
-
- DISPLAY.SYS supports the following hardware types (for graphic adapters):
-
- EGA
- VGA
- LCD
-
- PRINTER.SYS does not have an executable file yet, because:
- (a) there is no hardware supported
- (b) it cannot be interfaced
-
- (For more information about the supported hardware, see 204.txt)
-
- DISPLAY/PRINTER 0.09 is supplied under the GNU-GPL license, and it admits easy
- adding of other hardware types, by just implementing the routines that do the
- hardware codepage replacement. For more information, you should read the
- FreeDOS technote 204, which is included in this documentation (as 204.txt).
-
-
- 3.- Interactions
- ================
-
- DISPLAY/PRINTER 0.09 interact with other parts of DOS. Namely:
- - KEYB (DISPLAY.SYS): KEYB is asked to replace codepage when it is due
- DISPLAY.SYS fails if KEYB fails
- - PRINT (PRINTER.SYS): PRINTER.SYS checks wether PRINT is already in use
- PRINTER.SYS fails if PRINT is printing
- - GRAFTABL (DISPLAY.SYS): GRAFTABL has priority over DISPLAY.SYS when setting
- fonts
- - ARABIC/HEBREW (DISPLAY.SYS):
- DISPLAY.SYS calls these to manage more than one
- hardware codepages
-
-
- 4.- How to use the program
- ==========================
-
- Simply run it, being sure that no other DISPLAY program (identified
- though int2Fh, MUX=ADh, fn=00) has been previously loaded.
- The commandline is of the form:
-
- DISPLAY devname[:]=(hwtype,n,m)
-
- where:
- devname a valid device name, that in this version is ignored
- (use ANY valid name, such as CON)
- hwtype a valid hardware type identifier, such as EGA or VGA
- n hardware codepages: indicated as a simple number, or as a list
- of numbers (n1,n2,...) if more than one are to be used
- m software codepage buffers and subfonts. It can specify simply
- a number (number of codepage buffers), or a pair (b,f) with the
- number of codepage buffers and the number of subfonts (a subfont is
- a font with a different size, e.g. 14 or 16 rows per character). If
- the number of subfonts is ommited, then the most appropriate number
- will be detected.
-
- Example:
-
- DISPLAY CON=(VGA,437,2)
-
- specifies to use DISPLAY for the CON device, for an VGA adapter type and 2
- buffers for prepared codepages.
-
- To interface with DISPLAY, use the MODECON.EXE program provided. In the
- future, MODECON will be merged to FD-MODE.
-
- DISPLAY does not offer the possibility to unload once loaded.
-
-
- 5.- Known limitations
- =====================
-
- The following limitations apply to DISPLAY/PRINTER 0.09:
- - Only DISPLAY-type RAW fonts are admitted to be prepared (in the form of RAW
- files, see below). CPI files are not yet admitted
- - It does NOT interface with IOCTL calls, so it does NOT work with other MODE
- programs than MODECON.EXE
-
- These two are to be overcome on versions 0.10 and 1.0 respectively.
-
-
- 6.- Using MODECON.EXE
- =====================
-
- Use the accompaining MODECON.EXE utility to communicate with the
- program. It is self-explanatory (issue MODECON /? to see the options).
- There are three main commands that allow you to interface with DISPLAY.
-
- The first one is to know the currently active codepage:
-
- MODECON CODEPAGE
-
- Will tell you which is currently active codepage. Hardware BIOS codepage
- is allways supposed to be 437 (for the moment), which corresponds to the
- state of inactivity of the driver. DISPLAY always starts inactive.
-
- A second command allows you to PREPARE a codepage, i.e., to load the
- codepage information that DISPLAY needs to operate. The information is
- loaded from a one of the .RAW files provided. For example, if you want to
- prepare DISPLAY to use codepage 860, you have to issue
-
- MODECON CODEPAGE PREPARE (860) CP860.RAW
-
- which will load the codepage 860 into the first buffer from the CP860.RAW file.
- You use a list format to load ONE codepage into a desired buffer. For example,
- if we have specified 2 buffers, we can load codepage 860 into the second one by
-
- MODECON CODEPAGE PREPARE (,860) CP860.RAW
-
- Other useful command is to make active certain codepage. Hardware codepages can
- always be selected. Any other codepage needs to be prepared beforehand. If we
- have prepared codepage 860 with the previous command, then make it active by
-
- MODECON CODEPAGE SELECT 860
-
- For the moment, this is the only way to select the DISPLAY codepage. However,
- note that in the future, you are not supposed to use MODE for doing that. You'd
- rather do it by loading NLSFUNC and calling the internal command CHCP, like
-
- CHCP 860
-
- Finally, if for some reason, your codepage was messed, you can always recover
- it with the REFRESH command:
-
- MODECON CODEPAGE REFRESH
-
- Please always read the fast help of MODECON program to know more about it.
-
-
- 7.- Codepages pack
- ==================
-
- FD DISPLAY comes with some raw files you can use to prepare new codepages.
- In particular, DISPLAY is packed with the latest Reduced Pack of codepages by
- Henrique Peron, which is version 1.20 in this package. Please read the
- accompaining documentation.
-
- The full pack of codepages has many more codepages that you may use with FD
- DISPLAY, but that are not included here.
-
- Please check the FreeDOS site for latest codepage pack versions, making sure
- that you have read the documentation accompaining each pack (both DISPLAY and
- packs documentation) to check compatibility.
-
- DISPLAY 0.08 can be used with these packs:
- - Reduced: 1.00 - 1.20 (latest known)
- - Full: 1.11 - 1.20 (latest known)
-
-
- 8.- Future wishes
- =================
-
- In a nearby future, I'll be considering these tasks:
-
- (1) Be able to handle CPI files (expected by 0.10)
-
- (2) Turn the files into proper device drivers (expect by 1.00)
-
-
- Here I show a list of wishes that I'd leave for other contributors:
- - load CPI files in several chunks (as MS-DISPLAY does)
- - configure more than one device at a time. E.g.:
- DEVICE=PRINTER.SYS LPT1=... LPT2=...
- - save prepared CP buffers to XMS or EMS
- - read DRFONTs and more options from CPI files
- - (DISPLAY.SYS) communicate with ANSI.SYS via IOCTL calls
- - (PRINTER.SYS) enable the Privileged Lock Codepage Switching feature
-
-
- <<<EOF>>>
-